/*
server 类是一个基于 Qt 的服务器应用程序的主窗口类，它负责：
初始化服务器界面：加载 UI 界面。
加载配置信息：从配置文件中读取服务器的运行参数（如 IP 地址、端口号、文件存储路径等）。
启动 TCP 服务器：使用加载的配置信息启动 TCP 服务器，使其能够接收客户端的连接请求。
提供全局访问点：通过单例模式确保整个程序中只有一个服务器实例。
*/

#include "server.h"
#include "ui_server.h"

server::server(QWidget *parent): QWidget(parent), ui(new Ui::server){
    ui->setupUi(this);
    loadconfig();
    MyTcpServer::GetInstance().listen(QHostAddress(m_strIP),m_usport);
    qDebug()<<"服务器已开启监听模式,等待用户连接";
}

void server::loadconfig()
{
    QFile File(":/client.config");   //固定以冒号开头
    if(!File.open(QIODevice::ReadOnly)){
        QMessageBox::critical(this,"open config file","open failed");
        return;
    }
    QByteArray Data=File.readAll();
    QString strData=QString(Data);  //转化成QString类型

    QStringList List=strData.split("\r\n");   //按\r\n拆分
     m_strIP=List.at(0);
     m_usport=List.at(1).toUShort();
     m_filerootPath=List.at(2);
    qDebug()<<"加载配置信息"
           <<"IP:"<<m_strIP
           <<"port:"<<m_usport
           <<"m_filerootPath:"<<m_filerootPath;
    File.close();
}

server &server::GetInstance()
{
    static server Instance;
    return Instance;
}

server::~server()
{
    delete ui;
}

